Skip to content

Conversation

@mfahampshire
Copy link
Contributor

@mfahampshire mfahampshire commented Dec 4, 2025

This PR makes the necessary modifications to be able to publish the majority of the Nym monorepo workspace crates to https://crates.io (essentially everything aside from binaries, internal tools, and a few select other things).

Overall, this PR:

  • defines a workspace version for these crates; we want to keep them all in line with each other, even if that means bumping versions frequently and when there hasn't necessarily been a change in all crates.
    adds a script to use cargo release to publish the SDK + its dependencies - cargo release deals with creating them in the correct order
  • excludes crates we dont want to publish via each crates' cargo.toml file
  • adds a global version definition for crates in the root cargo.toml
  • changes most imports from path to using the workspace version

Todo:

  • fix issues re git crates
    • bls crate: upload fork to crates.io
    • test Upgrade to def_guard_wireguard v0.8.0 #6315 branch to make sure that there is no issue with new clients/gws and legacy ones after the dependency upgrade. If all good, change git import to 0.8.0 from crates as per PR
  • checkin on 'max todo' descriptions
  • experiment: remove separate contracts/ workspace - TEMP in max/crates-io-prep-v2-contract-experiment
  • fix nym-credential-verification compilation errs in dryrun
  • add publishing.md writeup
  • make ticket to check in on
    // note: https://github.com/rustwasm/gloo/issues/109

This change is Reviewable

@vercel
Copy link

vercel bot commented Dec 4, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

3 Skipped Deployments
Project Deployment Review Updated (UTC)
docs-nextra Ignored Ignored Preview Jan 8, 2026 5:42pm
nym-node-status Ignored Ignored Preview Jan 8, 2026 5:42pm
nym-explorer-v2 Skipped Skipped Jan 8, 2026 5:42pm

Cargo.toml Outdated

# sdk related deps so we can pull in workspace versions of these in other crates' cargo files, and not have to define the version everywhere
# nym-api = { version = "1.2.0", path = "nym-api" }
nym-bandwidth-controller = { version = "1.2.0", path = "common/bandwidth-controller" }
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure you have to specify the version on top here (plz double check), but if not, i'd remove it so we wouldn't cause some inconsistencies if we forget to update those

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was the hacky way I found which allows us to define the workspace.version for the constituent crates. Maybe I can get rid of those.. Will experiment.

[package]
name = "sqlx-pool-guard"
version = "0.1.0"
name = "nym-sqlx-pool-guard"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

since you've renamed this, after the PR gets merged, create a draft on the vpn repo to update their dependencies (as they were importing it too)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

note to self - check where this occurs elsewhere

@vercel vercel bot temporarily deployed to Preview – nym-explorer-v2 January 7, 2026 10:24 Inactive
@vercel vercel bot temporarily deployed to Preview – nym-explorer-v2 January 8, 2026 17:42 Inactive
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants